The present invention relates to a signal processing system, a signal outputting device, a signal inputting device, and a communication control method, and more particularly to a system for adaptively changing signal paths between a signal outputting device (hereinafter referred to as “source”) and a signal inputting device (hereinafter referred to as “sink”), which are connected to a network.
More particularly, the present invention relates to a system for establishing, releasing, and changing signal paths under AV/C Connection and Compatibility Management to transmit signals through isochronous connections specified according to IEC (International Electrotechnical Commission) 61883-1 for sending and receiving isochronous signals between a source and a sink specified according to IEEE (Institute of Electrical Electronics Engineers) 1394.
There have been developed AV (audiovisual) devices capable of transmitting information between a source and a sink via a network using a digital serial bus according to the IEEE 1394.
For operating the network, there are available two modes, i.e., an isochronous transfer mode for transmitting real-time data, and an asynchronous transfer mode for reliably transmitting a control command, etc.
For transmitting real-time data, it is necessary to establish a logic connection as a signal path between a source and a sink.
As the control command, a predetermined command, i.e., an AV/C Command Transaction set (hereinafter referred to as “AV/C command”), is transmitted to control an AV device connected to the network.
Plugs are present at the opposite ends of logic connections. Those plugs include Subunit Plugs for transmitting signals in devices, Plug Control Registers (hereinafter referred to as “PCR”) for inputting and outputting digital signals between devices, and External Plugs for inputting and outputting analog signals between devices.
The Subunit Plugs include a Subunit Source Plug for outputting signals and a Subunit Destination Plug for inputting signals. The PCR include an oPCR (Output Plug Control Register) for outputting signals and an iPCR (Input Plug Control Register) for inputting signals. The External Plugs include an External Output Plug for outputting signals and an External Input Plug for inputting signals.
The logic connections include an intra-device connection and an inter-device connection. The intra-device connection indicates a signal path present in each device, and the inter-device connection indicates a signal path present between a source and a sink.
The inter-device connection is available in two types. One type of the inter-device connection is a Point-to-Point connection (hereinafter referred to as “PtoP connection”) connecting one oPCR and one iPCR with one isochronous channel.
The other type of the inter-device connection includes a Broadcast out connection (hereinafter referred to as “Bout connection”) connecting one oPCR to one isochronous channel and a Broadcast in connection (hereinafter referred to as “Bin connection”) connecting one iPCR to one isochronous channel. These two connections are referred to as a Broadcast connection. A procedure for establishing and releasing a logic connection is described in IEC61883-1.
Establishing one inter-device connection requires an isochronous channel (hereinafter referred to as “channel”) and an isochronous band (hereinafter referred to as “band”). They are collectively referred to as an isochronous resource (hereinafter referred to as “resource”).
For establishing a logic connection, there is specified a command set called AV/C Connection and Compatibility Management (hereinafter referred to as “CCM”) as a scheme for transmitting information for appropriately establishing a logic connection by using a control command between a source and a sink.
A scheme for establishing the signal path of a logic connection using the CCM will be described below. An intra-device connection can be established by using a SIGNAL SOURCE command prescribed according to the CCM, and an inter-device connection can be established by using an INPUT SELECT command prescribed according to the CCM.
For the INPUT SELECT command, there are defined four sub functions including CONNECT, PATH CHANGE, SELECT, and DISCONNECT. When the INPUT SELECT command is to be sent, it is necessary to specify one of these sub functions. An example in which a sink acknowledges the INPUT SELECT command (returns an accepted response) will be described below.
The sink that has received CONNECT establishes an inter-device connection with a specified source. A sink that has received PATH CHANGE basically operates in the same manner as the CONNECT sub function, but can deny the establishment of an inter-device connection (returns a rejected response) if a specified source is not selected. A sink that has received SELECT selects a specified source, and can determine whether to establish an inter-device connection or not. A sink that has received DISCONNECT breaks a specified inter-device connection.
According to the CCM, a source sends the INPUT SELECT command to a sink for thereby transmitting information of the source to the sink, and the sink establishes an inter-device connection to the source using the information. To carry out such a process, it is necessary to enable the source to store information of the sink to which the INPUT SELECT command is to be sent. According to the CCM, an OUTPUT PRESET command is available for performing such a function. The INPUT SELECT command is used to enable the sink to store information of the source. Alternatively, an external controller may control the sink to store information of the source or control the source to store information of the sink.
According to the present invention, based on the basic concept of the CCM, an intra-device connection is established by the device itself, and an inter-device connection is established by a sink. However, an intra-device connection may be controlled from outside of the device using the SIGNAL SOURCE command.
For establishing an inter-device connection using the CCM, if a source wants to change an output signal from a digital signal to an analog signal, then the source sends the INPUT SELECT command to a sink. The sink uses information given by the received INPUT SELECT command to change the inter-device connection from a digital connection to an analog connection. The same process is carried out to change the signal path from analog to digital.
In the conventional process using the CCM, for changing the signal path from digital to analog or changing the signal path from analog to digital, the source sends the PATH CHANGE sub function of the INPUT SELECT command to the sink to indicate the signal path change to the sink.
There is a situation in which one of AV devices connected to a network is simultaneously inputting and outputting signals and is directly outputting a signal, which is being inputted from an external circuit. In such a situation, resources are wastefully used because one channel and one band are required for each of the signal input and the signal output.
The CCM introduces a virtual output and a concept called a monitor connection in order to prevent resources from being used excessively. Specifically, if a device that is simultaneously inputting and outputting signals is regarded as a source, then when a signal communicating with the source inspects an oPCR of the source with a status command of the SIGNAL SOURCE, the source returns a virtual output representing the inspected result as a response to the sink. Having received the inspected result, the sink does not establish a PtoP connection between its own iPCR and the oPCR of the source, but establishes a Bin connection to a channel inputted by the source. The form of such a logic connection is referred to as a monitor connection.
For making the above monitor connection in the conventional process using the CCM, it has been customary for the sink to periodically inspect the oPCR of the source using the status command of the SIGNAL SOURCE.
According to another process of making a monitor connection, the sink registers a notify function in the source using a notify command of the SIGNAL SOURCE, and when the status of the oPCR of the source is changed, the sink is notified of the change in the status of the oPCR using the notify function.
In the conventional process using the CCM, the sink that needs to make a monitor connection is required to periodically inspect the oPCR of the source using the status command of the SIGNAL SOURCE or register itself in the source using the notify command of the SIGNAL SOURCE.
If the sink periodically inspects the oPCR of the source using the status command of the SIGNAL SOURCE, then the sink needs to send the status command periodically to know the latest status of the oPCR of the source. The periodical transmission of the status command gives rise to problems in that the traffic on the 1394 bus becomes busy and the source, which receives the command, suffers a burden.
If the sink registers the notify function in the source using the notify command of the SIGNAL SOURCE, then since the sink does not need to send a command periodically to the source, the process is more advantageous than if the sink periodically inspects the oPCR of the source using the status command of the SIGNAL SOURCE. According to this process, however, when the source issues a notify message after the sink has registered the notify function in the source, the registration is canceled, requiring the sink to register the notify function again in the source. When the bus is reset, the registration is also canceled, requiring the sink to register the notify function again in the source.
In addition, as there is no way of canceling the notify function, no solution is available when the notification based on the notify function is no longer necessary. Furthermore, since the notify function is registered with priority given to a subsequent registration, if there are two sinks that register the notify function in a single source, then the sink that has registered the notify function in the source earlier has its registered notify function overwritten by the sink that registers the notify function in the source later, and cannot receive a notify message from the source.